diff --git a/drivers/gpio/altera_pio.c b/drivers/gpio/altera_pio.c
index 0b1861a..24e047e 100644
--- a/drivers/gpio/altera_pio.c
+++ b/drivers/gpio/altera_pio.c
@@ -84,7 +84,7 @@
 	return 0;
 }
 
-static int altera_pio_ofdata_to_platdata(struct udevice *dev)
+static int altera_pio_of_to_plat(struct udevice *dev)
 {
 	struct altera_pio_platdata *plat = dev_get_plat(dev);
 
@@ -116,7 +116,7 @@
 	.id		= UCLASS_GPIO,
 	.of_match	= altera_pio_ids,
 	.ops		= &altera_pio_ops,
-	.ofdata_to_platdata = altera_pio_ofdata_to_platdata,
+	.of_to_plat = altera_pio_of_to_plat,
 	.plat_auto	= sizeof(struct altera_pio_platdata),
 	.probe		= altera_pio_probe,
 };
diff --git a/drivers/gpio/bcm2835_gpio.c b/drivers/gpio/bcm2835_gpio.c
index 7c3f24e..a348c68 100644
--- a/drivers/gpio/bcm2835_gpio.c
+++ b/drivers/gpio/bcm2835_gpio.c
@@ -116,7 +116,7 @@
 }
 
 #if CONFIG_IS_ENABLED(OF_CONTROL)
-static int bcm2835_gpio_ofdata_to_platdata(struct udevice *dev)
+static int bcm2835_gpio_of_to_plat(struct udevice *dev)
 {
 	struct bcm2835_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
@@ -133,7 +133,7 @@
 U_BOOT_DRIVER(gpio_bcm2835) = {
 	.name	= "gpio_bcm2835",
 	.id	= UCLASS_GPIO,
-	.ofdata_to_platdata = of_match_ptr(bcm2835_gpio_ofdata_to_platdata),
+	.of_to_plat = of_match_ptr(bcm2835_gpio_of_to_plat),
 	.plat_auto	= sizeof(struct bcm2835_gpio_platdata),
 	.ops	= &gpio_bcm2835_ops,
 	.probe	= bcm2835_gpio_probe,
diff --git a/drivers/gpio/da8xx_gpio.c b/drivers/gpio/da8xx_gpio.c
index ff61a4c..b47d65d 100644
--- a/drivers/gpio/da8xx_gpio.c
+++ b/drivers/gpio/da8xx_gpio.c
@@ -540,7 +540,7 @@
 	{ }
 };
 
-static int davinci_gpio_ofdata_to_platdata(struct udevice *dev)
+static int davinci_gpio_of_to_plat(struct udevice *dev)
 {
 	struct davinci_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
@@ -557,7 +557,7 @@
 	.name	= "ti_dm6441_gpio",
 	.id	= UCLASS_GPIO,
 	.ops	= &gpio_davinci_ops,
-	.ofdata_to_platdata = of_match_ptr(davinci_gpio_ofdata_to_platdata),
+	.of_to_plat = of_match_ptr(davinci_gpio_of_to_plat),
 	.of_match = davinci_gpio_ids,
 	.bind   = dm_scan_fdt_dev,
 	.plat_auto	= sizeof(struct davinci_gpio_platdata),
diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
index 4eedd4f..65b18ce 100644
--- a/drivers/gpio/gpio-uclass.c
+++ b/drivers/gpio/gpio-uclass.c
@@ -239,7 +239,7 @@
 	u32 val[2];
 };
 
-static int gpio_hog_ofdata_to_platdata(struct udevice *dev)
+static int gpio_hog_of_to_plat(struct udevice *dev)
 {
 	struct gpio_hog_data *plat = dev_get_plat(dev);
 	const char *nodename;
@@ -338,7 +338,7 @@
 U_BOOT_DRIVER(gpio_hog) = {
 	.name	= "gpio_hog",
 	.id	= UCLASS_NOP,
-	.ofdata_to_platdata = gpio_hog_ofdata_to_platdata,
+	.of_to_plat = gpio_hog_of_to_plat,
 	.probe = gpio_hog_probe,
 	.priv_auto	= sizeof(struct gpio_hog_priv),
 	.plat_auto	= sizeof(struct gpio_hog_data),
diff --git a/drivers/gpio/intel_broadwell_gpio.c b/drivers/gpio/intel_broadwell_gpio.c
index 2b9e1a2..9cd0745 100644
--- a/drivers/gpio/intel_broadwell_gpio.c
+++ b/drivers/gpio/intel_broadwell_gpio.c
@@ -139,7 +139,7 @@
 	return 0;
 }
 
-static int broadwell_gpio_ofdata_to_platdata(struct udevice *dev)
+static int broadwell_gpio_of_to_plat(struct udevice *dev)
 {
 	struct broadwell_bank_platdata *plat = dev_get_plat(dev);
 	u32 gpiobase;
@@ -182,7 +182,7 @@
 	.id	= UCLASS_GPIO,
 	.of_match = intel_broadwell_gpio_ids,
 	.ops	= &gpio_broadwell_ops,
-	.ofdata_to_platdata	= broadwell_gpio_ofdata_to_platdata,
+	.of_to_plat	= broadwell_gpio_of_to_plat,
 	.probe	= broadwell_gpio_probe,
 	.priv_auto	= sizeof(struct broadwell_bank_priv),
 	.plat_auto	= sizeof(struct broadwell_bank_platdata),
diff --git a/drivers/gpio/intel_gpio.c b/drivers/gpio/intel_gpio.c
index c3b67f2..41540d8 100644
--- a/drivers/gpio/intel_gpio.c
+++ b/drivers/gpio/intel_gpio.c
@@ -164,7 +164,7 @@
 	return 0;
 }
 
-static int intel_gpio_ofdata_to_platdata(struct udevice *dev)
+static int intel_gpio_of_to_plat(struct udevice *dev)
 {
 	struct gpio_dev_priv *upriv = dev_get_uclass_priv(dev);
 	struct intel_pinctrl_priv *pinctrl_priv = dev_get_priv(dev->parent);
@@ -198,6 +198,6 @@
 	.id	= UCLASS_GPIO,
 	.of_match = intel_intel_gpio_ids,
 	.ops	= &gpio_intel_ops,
-	.ofdata_to_platdata	= intel_gpio_ofdata_to_platdata,
+	.of_to_plat	= intel_gpio_of_to_plat,
 	.probe	= intel_gpio_probe,
 };
diff --git a/drivers/gpio/intel_ich6_gpio.c b/drivers/gpio/intel_ich6_gpio.c
index cfb2dda..add13d8 100644
--- a/drivers/gpio/intel_ich6_gpio.c
+++ b/drivers/gpio/intel_ich6_gpio.c
@@ -93,7 +93,7 @@
 	return 0;
 }
 
-static int gpio_ich6_ofdata_to_platdata(struct udevice *dev)
+static int gpio_ich6_of_to_plat(struct udevice *dev)
 {
 	struct ich6_bank_platdata *plat = dev_get_plat(dev);
 	u32 gpiobase;
@@ -234,7 +234,7 @@
 	.id	= UCLASS_GPIO,
 	.of_match = intel_ich6_gpio_ids,
 	.ops	= &gpio_ich6_ops,
-	.ofdata_to_platdata	= gpio_ich6_ofdata_to_platdata,
+	.of_to_plat	= gpio_ich6_of_to_plat,
 	.probe	= ich6_gpio_probe,
 	.priv_auto	= sizeof(struct ich6_bank_priv),
 	.plat_auto	= sizeof(struct ich6_bank_platdata),
diff --git a/drivers/gpio/iproc_gpio.c b/drivers/gpio/iproc_gpio.c
index 3cf1663..1a3a9cb 100644
--- a/drivers/gpio/iproc_gpio.c
+++ b/drivers/gpio/iproc_gpio.c
@@ -218,7 +218,7 @@
 		return GPIOF_INPUT;
 }
 
-static int iproc_gpio_ofdata_to_platdata(struct udevice *dev)
+static int iproc_gpio_of_to_plat(struct udevice *dev)
 {
 	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
@@ -285,6 +285,6 @@
 	.id			= UCLASS_GPIO,
 	.of_match		= iproc_gpio_ids,
 	.ops			= &iproc_gpio_ops,
-	.ofdata_to_platdata	= iproc_gpio_ofdata_to_platdata,
+	.of_to_plat	= iproc_gpio_of_to_plat,
 	.plat_auto	= sizeof(struct iproc_gpio_platdata),
 };
diff --git a/drivers/gpio/mpc83xx_spisel_boot.c b/drivers/gpio/mpc83xx_spisel_boot.c
index 245b43f..a35e4de 100644
--- a/drivers/gpio/mpc83xx_spisel_boot.c
+++ b/drivers/gpio/mpc83xx_spisel_boot.c
@@ -61,7 +61,7 @@
 }
 
 #if CONFIG_IS_ENABLED(OF_CONTROL)
-static int mpc83xx_spisel_boot_ofdata_to_platdata(struct udevice *dev)
+static int mpc83xx_spisel_boot_of_to_plat(struct udevice *dev)
 {
 	struct mpc8xxx_gpio_plat *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
@@ -140,7 +140,7 @@
 	.id	= UCLASS_GPIO,
 	.ops	= &mpc83xx_spisel_boot_ops,
 #if CONFIG_IS_ENABLED(OF_CONTROL)
-	.ofdata_to_platdata = mpc83xx_spisel_boot_ofdata_to_platdata,
+	.of_to_plat = mpc83xx_spisel_boot_of_to_plat,
 	.plat_auto	= sizeof(struct mpc8xxx_gpio_plat),
 	.of_match = mpc83xx_spisel_boot_ids,
 #endif
diff --git a/drivers/gpio/mpc8xxx_gpio.c b/drivers/gpio/mpc8xxx_gpio.c
index 0933b90..dfc1dc6 100644
--- a/drivers/gpio/mpc8xxx_gpio.c
+++ b/drivers/gpio/mpc8xxx_gpio.c
@@ -183,7 +183,7 @@
 }
 
 #if CONFIG_IS_ENABLED(OF_CONTROL)
-static int mpc8xxx_gpio_ofdata_to_platdata(struct udevice *dev)
+static int mpc8xxx_gpio_of_to_plat(struct udevice *dev)
 {
 	struct mpc8xxx_gpio_plat *plat = dev_get_plat(dev);
 	struct mpc8xxx_gpio_data *data = dev_get_priv(dev);
@@ -294,7 +294,7 @@
 	.id	= UCLASS_GPIO,
 	.ops	= &gpio_mpc8xxx_ops,
 #if CONFIG_IS_ENABLED(OF_CONTROL)
-	.ofdata_to_platdata = mpc8xxx_gpio_ofdata_to_platdata,
+	.of_to_plat = mpc8xxx_gpio_of_to_plat,
 	.plat_auto	= sizeof(struct mpc8xxx_gpio_plat),
 	.of_match = mpc8xxx_gpio_ids,
 #endif
diff --git a/drivers/gpio/msm_gpio.c b/drivers/gpio/msm_gpio.c
index 0feafb3..af6c838 100644
--- a/drivers/gpio/msm_gpio.c
+++ b/drivers/gpio/msm_gpio.c
@@ -101,7 +101,7 @@
 	return priv->base == FDT_ADDR_T_NONE ? -EINVAL : 0;
 }
 
-static int msm_gpio_ofdata_to_platdata(struct udevice *dev)
+static int msm_gpio_of_to_plat(struct udevice *dev)
 {
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
@@ -126,7 +126,7 @@
 	.name	= "gpio_msm",
 	.id	= UCLASS_GPIO,
 	.of_match = msm_gpio_ids,
-	.ofdata_to_platdata = msm_gpio_ofdata_to_platdata,
+	.of_to_plat = msm_gpio_of_to_plat,
 	.probe	= msm_gpio_probe,
 	.ops	= &gpio_msm_ops,
 	.priv_auto	= sizeof(struct msm_gpio_bank),
diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
index 409793d..29d1bc3 100644
--- a/drivers/gpio/mxc_gpio.c
+++ b/drivers/gpio/mxc_gpio.c
@@ -307,7 +307,7 @@
 	return 0;
 }
 
-static int mxc_gpio_ofdata_to_platdata(struct udevice *dev)
+static int mxc_gpio_of_to_plat(struct udevice *dev)
 {
 	struct mxc_gpio_plat *plat = dev_get_plat(dev);
 	if (!CONFIG_IS_ENABLED(OF_PLATDATA)) {
@@ -338,7 +338,7 @@
 	.id	= UCLASS_GPIO,
 	.ops	= &gpio_mxc_ops,
 	.probe	= mxc_gpio_probe,
-	.ofdata_to_platdata = mxc_gpio_ofdata_to_platdata,
+	.of_to_plat = mxc_gpio_of_to_plat,
 	.plat_auto	= sizeof(struct mxc_gpio_plat),
 	.priv_auto	= sizeof(struct mxc_bank_info),
 	.of_match = mxc_gpio_ids,
diff --git a/drivers/gpio/mxs_gpio.c b/drivers/gpio/mxs_gpio.c
index 7ef34c6..30daf4a 100644
--- a/drivers/gpio/mxs_gpio.c
+++ b/drivers/gpio/mxs_gpio.c
@@ -262,7 +262,7 @@
 }
 
 #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
-static int mxs_ofdata_to_platdata(struct udevice *dev)
+static int mxs_of_to_plat(struct udevice *dev)
 {
 	struct mxs_gpio_platdata *plat = dev->plat;
 	struct fdtdec_phandle_args args;
@@ -302,7 +302,7 @@
 	.plat_auto	= sizeof(struct mxs_gpio_platdata),
 #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
 	.of_match = mxs_gpio_ids,
-	.ofdata_to_platdata = mxs_ofdata_to_platdata,
+	.of_to_plat = mxs_of_to_plat,
 #endif
 };
 
diff --git a/drivers/gpio/nx_gpio.c b/drivers/gpio/nx_gpio.c
index d69a22a..8c5fd67 100644
--- a/drivers/gpio/nx_gpio.c
+++ b/drivers/gpio/nx_gpio.c
@@ -212,7 +212,7 @@
 	return 0;
 }
 
-static int nx_gpio_ofdata_to_platdata(struct udevice *dev)
+static int nx_gpio_of_to_plat(struct udevice *dev)
 {
 	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 
@@ -244,7 +244,7 @@
 	.id		= UCLASS_GPIO,
 	.of_match	= nx_gpio_ids,
 	.ops		= &nx_gpio_ops,
-	.ofdata_to_platdata = nx_gpio_ofdata_to_platdata,
+	.of_to_plat = nx_gpio_of_to_plat,
 	.plat_auto	= sizeof(struct nx_gpio_platdata),
 	.probe		= nx_gpio_probe,
 };
diff --git a/drivers/gpio/omap_gpio.c b/drivers/gpio/omap_gpio.c
index 6581dca..665f46d 100644
--- a/drivers/gpio/omap_gpio.c
+++ b/drivers/gpio/omap_gpio.c
@@ -342,7 +342,7 @@
 	{ }
 };
 
-static int omap_gpio_ofdata_to_platdata(struct udevice *dev)
+static int omap_gpio_of_to_plat(struct udevice *dev)
 {
 	struct omap_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
@@ -362,7 +362,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
 	.of_match = omap_gpio_ids,
-	.ofdata_to_platdata = of_match_ptr(omap_gpio_ofdata_to_platdata),
+	.of_to_plat = of_match_ptr(omap_gpio_of_to_plat),
 	.plat_auto	= sizeof(struct omap_gpio_platdata),
 #endif
 #else
diff --git a/drivers/gpio/pcf8575_gpio.c b/drivers/gpio/pcf8575_gpio.c
index 570486f..3eed9e9 100644
--- a/drivers/gpio/pcf8575_gpio.c
+++ b/drivers/gpio/pcf8575_gpio.c
@@ -175,7 +175,7 @@
 	.id	= UCLASS_GPIO,
 	.ops	= &pcf8575_gpio_ops,
 	.of_match = pcf8575_gpio_ids,
-	.ofdata_to_platdata = pcf8575_ofdata_platdata,
+	.of_to_plat = pcf8575_ofdata_platdata,
 	.probe	= pcf8575_gpio_probe,
 	.plat_auto	= sizeof(struct pcf8575_chip),
 };
diff --git a/drivers/gpio/pm8916_gpio.c b/drivers/gpio/pm8916_gpio.c
index 20d5bd5..40b0f25 100644
--- a/drivers/gpio/pm8916_gpio.c
+++ b/drivers/gpio/pm8916_gpio.c
@@ -187,7 +187,7 @@
 	return 0;
 }
 
-static int pm8916_gpio_ofdata_to_platdata(struct udevice *dev)
+static int pm8916_gpio_of_to_plat(struct udevice *dev)
 {
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
@@ -209,7 +209,7 @@
 	.name	= "gpio_pm8916",
 	.id	= UCLASS_GPIO,
 	.of_match = pm8916_gpio_ids,
-	.ofdata_to_platdata = pm8916_gpio_ofdata_to_platdata,
+	.of_to_plat = pm8916_gpio_of_to_plat,
 	.probe	= pm8916_gpio_probe,
 	.ops	= &pm8916_gpio_ops,
 	.priv_auto	= sizeof(struct pm8916_gpio_bank),
@@ -272,7 +272,7 @@
 	return 0;
 }
 
-static int pm8941_pwrkey_ofdata_to_platdata(struct udevice *dev)
+static int pm8941_pwrkey_of_to_plat(struct udevice *dev)
 {
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
@@ -294,7 +294,7 @@
 	.name	= "pwrkey_pm8916",
 	.id	= UCLASS_GPIO,
 	.of_match = pm8941_pwrkey_ids,
-	.ofdata_to_platdata = pm8941_pwrkey_ofdata_to_platdata,
+	.of_to_plat = pm8941_pwrkey_of_to_plat,
 	.probe	= pm8941_pwrkey_probe,
 	.ops	= &pm8941_pwrkey_ops,
 	.priv_auto	= sizeof(struct pm8916_gpio_bank),
diff --git a/drivers/gpio/sandbox.c b/drivers/gpio/sandbox.c
index fa87130..2708838 100644
--- a/drivers/gpio/sandbox.c
+++ b/drivers/gpio/sandbox.c
@@ -278,7 +278,7 @@
 #endif
 };
 
-static int sandbox_gpio_ofdata_to_platdata(struct udevice *dev)
+static int sandbox_gpio_of_to_plat(struct udevice *dev)
 {
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
@@ -318,7 +318,7 @@
 	.name	= "sandbox_gpio",
 	.id	= UCLASS_GPIO,
 	.of_match = sandbox_gpio_ids,
-	.ofdata_to_platdata = sandbox_gpio_ofdata_to_platdata,
+	.of_to_plat = sandbox_gpio_of_to_plat,
 	.probe	= gpio_sandbox_probe,
 	.remove	= gpio_sandbox_remove,
 	.ops	= &gpio_sandbox_ops,
diff --git a/drivers/gpio/sifive-gpio.c b/drivers/gpio/sifive-gpio.c
index 79d3ed4..933cace 100644
--- a/drivers/gpio/sifive-gpio.c
+++ b/drivers/gpio/sifive-gpio.c
@@ -154,7 +154,7 @@
 	.get_function		= sifive_gpio_get_function,
 };
 
-static int sifive_gpio_ofdata_to_platdata(struct udevice *dev)
+static int sifive_gpio_of_to_plat(struct udevice *dev)
 {
 	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
@@ -171,7 +171,7 @@
 	.name	= "gpio_sifive",
 	.id	= UCLASS_GPIO,
 	.of_match = sifive_gpio_match,
-	.ofdata_to_platdata = of_match_ptr(sifive_gpio_ofdata_to_platdata),
+	.of_to_plat = of_match_ptr(sifive_gpio_of_to_plat),
 	.plat_auto	= sizeof(struct sifive_gpio_platdata),
 	.ops	= &sifive_gpio_ops,
 	.probe	= sifive_gpio_probe,
diff --git a/drivers/gpio/vybrid_gpio.c b/drivers/gpio/vybrid_gpio.c
index bb04b82..9133e59 100644
--- a/drivers/gpio/vybrid_gpio.c
+++ b/drivers/gpio/vybrid_gpio.c
@@ -130,7 +130,7 @@
 	.id	= UCLASS_GPIO,
 	.ops	= &gpio_vybrid_ops,
 	.of_match = vybrid_gpio_ids,
-	.ofdata_to_platdata = vybrid_gpio_odata_to_platdata,
+	.of_to_plat = vybrid_gpio_odata_to_platdata,
 	.probe	= vybrid_gpio_probe,
 	.priv_auto	= sizeof(struct vybrid_gpios),
 	.plat_auto	= sizeof(struct vybrid_gpio_platdata),
diff --git a/drivers/gpio/xilinx_gpio.c b/drivers/gpio/xilinx_gpio.c
index 847f399..7bc758b 100644
--- a/drivers/gpio/xilinx_gpio.c
+++ b/drivers/gpio/xilinx_gpio.c
@@ -263,7 +263,7 @@
 	return 0;
 }
 
-static int xilinx_gpio_ofdata_to_platdata(struct udevice *dev)
+static int xilinx_gpio_of_to_plat(struct udevice *dev)
 {
 	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	int is_dual;
@@ -301,7 +301,7 @@
 	.id = UCLASS_GPIO,
 	.ops = &xilinx_gpio_ops,
 	.of_match = xilinx_gpio_ids,
-	.ofdata_to_platdata = xilinx_gpio_ofdata_to_platdata,
+	.of_to_plat = xilinx_gpio_of_to_plat,
 	.probe = xilinx_gpio_probe,
 	.plat_auto	= sizeof(struct xilinx_gpio_platdata),
 	.priv_auto	= sizeof(struct xilinx_gpio_privdata),
diff --git a/drivers/gpio/zynq_gpio.c b/drivers/gpio/zynq_gpio.c
index a273aff..ffbe7b4 100644
--- a/drivers/gpio/zynq_gpio.c
+++ b/drivers/gpio/zynq_gpio.c
@@ -388,7 +388,7 @@
 	return 0;
 }
 
-static int zynq_gpio_ofdata_to_platdata(struct udevice *dev)
+static int zynq_gpio_of_to_plat(struct udevice *dev)
 {
 	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
@@ -405,7 +405,7 @@
 	.id	= UCLASS_GPIO,
 	.ops	= &gpio_zynq_ops,
 	.of_match = zynq_gpio_ids,
-	.ofdata_to_platdata = zynq_gpio_ofdata_to_platdata,
+	.of_to_plat = zynq_gpio_of_to_plat,
 	.probe	= zynq_gpio_probe,
 	.plat_auto	= sizeof(struct zynq_gpio_platdata),
 };
